package br.eng.eliseu.gwt.gestaoWeb.model.empresa;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.eng.eliseu.gwt.gestaoWeb.model.BaseEntity;
import br.eng.eliseu.gwt.gestaoWeb.model.enums.SistemasEnum;
import br.eng.eliseu.gwt.gestaoWeb.model.enums.StatusEnum;

@Entity
@SequenceGenerator(name="SQ_EMPRESASISTEMA", sequenceName="SQ_EMPRESASISTEMA")
@NamedQueries({
	@NamedQuery(name = "empresaSistema.porEmpresa", query = "select u from EmpresaSistema u where 1=1 "+
			"and u.empresa = :empresa "),
	@NamedQuery(name = "empresaSistema.porEmpresaSistema", query = "select u from EmpresaSistema u where 1=1 "+
			"and u.empresa = :empresa "+
			"and u.sistema = :sistema ")
	})
public class EmpresaSistema extends BaseEntity{


	@Id
	@GeneratedValue(generator="SQ_EMPRESASISTEMA", strategy=GenerationType.AUTO)
	private Integer id;

	@ManyToOne
	@JoinColumn(name="empresa_id")
	private Empresa empresa;
	
	@Column(length=10)
	@Enumerated(EnumType.STRING)
	private SistemasEnum sistema;
	
	@Enumerated(EnumType.STRING)
	@Column(length=10)
	private StatusEnum status;
	
	@Temporal(value=TemporalType.DATE)
	private Date dtInicio;
	
	@Temporal(value=TemporalType.DATE)
	private Date dtFim;

	
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Empresa getEmpresa() {
		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}

	public SistemasEnum getSistema() {
		return sistema;
	}

	public void setSistema(SistemasEnum sistema) {
		this.sistema = sistema;
	}

	public StatusEnum getStatus() {
		return status;
	}

	public void setStatus(StatusEnum status) {
		this.status = status;
	}

	public Date getDtInicio() {
		return dtInicio;
	}

	public void setDtInicio(Date dtInicio) {
		this.dtInicio = dtInicio;
	}

	public Date getDtFim() {
		return dtFim;
	}

	public void setDtFim(Date dtFim) {
		this.dtFim = dtFim;
	}
	


}
